home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Apple II Magazines (PO)
/
Nibble Volume 09, No. 12 (1988-12)(MicroSPARC)(Side A)[a].zip
/
Nibble Volume 09, No. 12 (1988-12)(MicroSPARC)(Side A)[a].po
/
HREXP.T.txt
< prev
next >
Wrap
Text File
|
1996-12-24
|
2KB
|
67 lines
**************************************************
* *
* HREXP Source Code *
* *
* by S. Scott Zimmerman *
* Copyright (c) 1988 *
* by MicroSPARC, Inc *
* Concord, MA 01742 *
* *
* Merlin Assembler *
* *
**************************************************
ORG $300 ;Relocatable
**************************************************
* EQUates: *
**************************************************
HRPTR EQU $00 ;Hi-res screen pointer
SCRNNUM EQU $06 ;0 = HR pg 1, 32 = pg 2
COMPTR EQU $1E ;Compact pict pointer
ENDBYT EQU $80 ;#$80 ends 'on' bytes
**************************************************
* Macro definition: *
**************************************************
INCR MAC ;16-Bit increment
INC :A
BNE ]A
INC :A+1
]A EMC
**************************************************
* Program start: *
**************************************************
ADDRESS LDY #0 ;Zero the index
LDA (COMPTR),Y ;Get compact byte
INCR COMPTR ;Point to next comp byt
STA HRPTR ;Set hi-res address
CLC ;Prepare to add
LDA (COMPTR),Y ;Get HOB from compact
INCR COMPTR ;Point to next comp byt
ADC SCRNNUM ;Add HR page (0 or 32)
STA HRPTR+1 ;Set HOB
BYTVAL LDA (COMPTR),Y ;Get HR byte value
INCR COMPTR ;Point to next comp byt
CMP #ENDBYT ;End of string?
BEQ TABLEND ;Yes, end of string
NOP ;To erase, put $A9 here
NOP ; and $00 here
STA (HRPTR),Y ;Put pixels on screen
INCR HRPTR ;Point to next HR byte
CLV ;To force branch
BVC BYTVAL ;Always branch
TABLEND LDA (COMPTR),Y ;Three $80's in a row?
CMP #ENDBYT
BNE ADDRESS ;No, so proceed
INY ;Go to next compact byt
LDA (COMPTR),Y
CMP #ENDBYT
BNE ADDRESS ;No, so proceed
RTS ;Yes, so done